<p>给你一个数组 <code>target</code> 和一个整数 <code>n</code>。</p>

<p>给你一个空栈和两种操作：</p>

<ul>
	<li><code>"Push"</code>：将一个整数加到栈顶。</li>
	<li><code>"Pop"</code>：从栈顶删除一个整数。</li>
</ul>

<p>同时给定一个范围 <code>[1, n]</code> 中的整数流。</p>

<p>使用两个栈操作使栈中的数字（从底部到顶部）等于 <code>target</code>。你应该遵循以下规则：</p>

<ul>
	<li>如果整数流不为空，从流中选取下一个整数并将其推送到栈顶。</li>
	<li>如果栈不为空，弹出栈顶的整数。</li>
	<li>如果，在任何时刻，栈中的元素（从底部到顶部）等于 <code>target</code>，则不要从流中读取新的整数，也不要对栈进行更多操作。</li>
</ul>

<p>请返回遵循上述规则构建&nbsp;<code>target</code> 所用的操作序列。如果存在多个合法答案，返回 <strong>任一</strong> 即可。</p>

<p>&nbsp;</p>

<p><strong>示例 1：</strong></p>

<pre>
<strong>输入：</strong>target = [1,3], n = 3
<strong>输出：</strong>["Push","Push","Pop","Push"]
<strong>解释：</strong>一开始栈为空。最后一个元素是栈顶。<strong>
</strong>从流中读取 1 并推入数组。s = [1]。
从流中读取 2 并推入数组。s = [1,2]。
从栈顶删除整数。s = [1]。
从流中读取 3 并推入数组。s = [1,3]。
</pre>

<p><strong>示例 2：</strong></p>

<pre>
<strong>输入：</strong>target = [1,2,3], n = 3
<strong>输出：</strong>["Push","Push","Push"]
<strong>解释：</strong>一开始栈为空。最后一个元素是栈顶。
从流中读取 1 并推入数组。s = [1]。
从流中读取 2 并推入数组。s = [1,2]。
从流中读取 3 并推入数组。s = [1,2,3]。
</pre>

<p><strong>示例 3：</strong></p>

<pre>
<strong>输入：</strong>target = [1,2], n = 4
<strong>输出：</strong>["Push","Push"]
<strong>解释：</strong>一开始栈为空。最后一个元素是栈顶。
从流中读取 1 并推入数组。s = [1]。
从流中读取 2 并推入数组。s = [1,2]。
由于栈（从底部到顶部）等于 target，我们停止栈操作。
从流中读取整数 3 的答案不被接受。
</pre>

<p>&nbsp;</p>

<p><strong>提示：</strong></p>

<ul>
	<li><code>1 &lt;= target.length &lt;= 100</code></li>
	<li><code>1 &lt;= n &lt;= 100</code></li>
	<li><code>1 &lt;= target[i] &lt;= n</code></li>
	<li><code>target</code> 严格递增</li>
</ul>
